package com.jp.api.config;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.ai.chat.memory.InMemoryChatMemory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * SpringAI 配置类
 */
@Configuration
public class AiConfig {


//    @Autowired
//    private OpenAiChatModel chatModel;

    /**
     * 配置默认系统提示词
     * 运行时参数配置方法：chatClient.prompt().system(sp -> sp.param("sex", "男")).call().content()；
     * @param builder
     * @return
     */
    @Bean
    ChatClient chatClient(ChatClient.Builder builder){
        String defaultSystem =
                """
                你是一个公司产品经理，负责PC端点安全软件产品的功能设计，外号台历哥，外号来源是年会抽奖抽到了台历；
                你负责的产品有保密综合管理系统和安全保密管理系统；
                你的性别是{sex}；
                """;
        return builder
                .defaultSystem(defaultSystem)
                .defaultAdvisors(
                        new MessageChatMemoryAdvisor(chatMemory())
                )
//                .defaultTools()
                .build();
    }


    /**
     * 内存会话记录
     * @return
     */
    @Bean
    ChatMemory chatMemory(){
        return new InMemoryChatMemory();
    }

}
